package com.service.infoEntry.service;

import com.service.config.utils.Result;
import com.service.infoEntry.dto.TransactionInfoDto;
import com.service.infoEntry.dto.UserDto;
import com.service.infoEntry.entity.ContentOfUpdateInfo;
import com.service.infoEntry.entity.ProgrammeInfo;
import com.service.infoEntry.entity.TransactionInfo;
import com.service.infoEntry.vo.TransactionVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface TransactionService {
    /**
     * 添加问题
     * @param transactionInfoDto
     */
    Result addTransaction(TransactionInfoDto transactionInfoDto,UserDto userDto);

    Result updateTransaction(TransactionInfoDto transactionInfoDto,UserDto userDto);

    TransactionVo searchTransactionByNo(String no,String userId,String teamId);

    Map<String,Object> searchTransaction(String teamId, String userId, String desc, Integer status, Integer transactionStatus, Integer page);

    /**
     * 导出项目问题清单
     * @param teamId
     * @param userId
     * @return
     */
    String exportTransactionList(String teamId,String userId);

    void closeTransaction(TransactionInfoDto transactionInfoDto);

    List<TransactionInfo> queryAllByDate(TransactionInfo transactionInfo);

    void downloadModelTransaction(HttpServletResponse response);

    Result uploadTransactionList(MultipartFile file, String teamId,UserDto userDto) throws Exception;

    List<ProgrammeInfo> getProgrammeName(String teamId, String userId, int type);

    List<ContentOfUpdateInfo> queryUpdateProcess(String teamId, String userId, String transactionNO);

}
